<?php

// +----------------------------------------------------------------------
// | ThinkAdmin
// +----------------------------------------------------------------------
// | 版权所有 2014-2018 东莞市云拓互联网络科技有限公司
// +----------------------------------------------------------------------
// | 官方网站:http://www.ytclouds.net
// +----------------------------------------------------------------------
// | 开源协议 ( https://mit-license.org )
// +----------------------------------------------------------------------
// |
// +----------------------------------------------------------------------

namespace app\appusers\controller;

use controller\BasicAdmin;
use service\DataService;
use think\Db;

/**
 * 报名管理
 * @author Anyon <zoujingli@qq.com>
 */
class Signup extends BasicAdmin
{

    /**
     * 定义当前操作表名
     * @var string
     */
    public $table = 'CompetitionSignUp';

    public function index()
    {
        $this->title = '报名列表';
        $get = $this->request->get();
        $db = Db::name($this->table)->where(['competition_id' => 1]);

//        foreach (['title', 'author'] as $key) {
//            (isset($get[$key]) && $get[$key] !== '') && $db->whereLike($key, "%{$get[$key]}%");
//        }
        if (isset($get['create_at']) && $get['create_at'] !== '') {
            list($start, $end) = explode(' - ', $get['create_at']);
            $db->whereBetween('create_at', ["{$start} 00:00:00", "{$end} 23:59:59"]);
        }


        if (isset($get['is_report']) && $get['is_report'] == 1) {
            //搜出全部
            return parent::_list($db->order('create_at desc'),false);
        } else {
            return parent::_list($db->order('create_at desc'));
        }

    }

    public function _data_filter(&$list)
    {
        foreach ($list as $key => &$val) {
            $user_info = Db::name("AppUsers")
                ->where("id", $val['user_id'])
                ->field("nickname,headimgurl")
                ->find();
            if ($user_info) {
                $val['wx_name'] = $user_info['nickname'];
                $val['headimgurl'] = $user_info['headimgurl'];
            } else {
                $val['wx_name'] = '';
                $val['wx_name'] = '';
            }
        }
        if ($this->request->get('is_report') == 1) {
            if (count($list) <= 0) {
                $this->error("无数据");
            }
            //打印
            $strTable = '<table width="500" border="1">';
            $strTable .= '<tr><td colspan="7" style="text-align:center;font-size:18px;height: 32px;line-height: 32px;">用户参赛报名表</td></tr>';
            $strTable .= '<tr>';
            $strTable .= '<td style="text-align:center;font-size:12px;" width="*">用户</td>';
            $strTable .= '<td style="text-align:center;font-size:12px;" width="*">报名时间</td>';
            $strTable .= '<td style="text-align:center;font-size:12px;" width="*">姓名</td>';
            $strTable .= '<td style="text-align:center;font-size:12px;" width="*">性别</td>';
            $strTable .= '<td style="text-align:center;font-size:12px;" width="*">身份证</td>';
            $strTable .= '<td style="text-align:center;font-size:12px;" width="*">名族</td>';
            $strTable .= '<td style="text-align:center;font-size:12px;" width="*">城市</td>';
            $strTable .= '<td style="text-align:center;font-size:12px;" width="*">手机号码</td>';
            $strTable .= '<td style="text-align:center;font-size:12px;" width="*">家庭住址</td>';
            $strTable .= '<td style="text-align:center;font-size:12px;" width="*">紧急联系人号码</td>';
            $strTable .= '<td style="text-align:center;font-size:12px;" width="*">单位</td>';
            $strTable .= '<td style="text-align:center;font-size:12px;" width="*">出生日期</td>';
            $strTable .= '<td style="text-align:center;font-size:12px;" width="*">身高</td>';
            $strTable .= '<td style="text-align:center;font-size:12px;" width="*">体重</td>';
            $strTable .= '<td style="text-align:center;font-size:12px;" width="*">爱好</td>';
            $strTable .= '<td style="text-align:center;font-size:12px;" width="*">是否签约经纪</td>';
            $strTable .= '<td style="text-align:center;font-size:12px;" width="*">组类型</td>';
            $strTable .= '<td style="text-align:center;font-size:12px;" width="*">参赛形式</td>';
            $strTable .= '<td style="text-align:center;font-size:12px;" width="*">组合名</td>';
            $strTable .= '<td style="text-align:center;font-size:12px;" width="*">组合人数</td>';
            $strTable .= '<td style="text-align:center;font-size:12px;" width="*">组类型</td>';
            $strTable .= '<td style="text-align:center;font-size:12px;" width="*">是否有乐器</td>';
            $strTable .= '<td style="text-align:center;font-size:12px;" width="*">乐器名称</td>';
            $strTable .= '<td style="text-align:center;font-size:12px;" width="*">参赛种类</td>';
            $strTable .= '<td style="text-align:center;font-size:12px;" width="*">是否有原创</td>';
            $strTable .= '<td style="text-align:center;font-size:12px;" width="*">参赛种类</td>';
            $strTable .= '<td style="text-align:center;font-size:12px;" width="*">参赛经历</td>';
            $strTable .= '<td style="text-align:center;font-size:12px;" width="*">获奖经历</td>';
            $strTable .= '</tr>';

            foreach ($list as $k => $v) {
                $strTable .= '<tr>';
                $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >' . $v['wx_name'] . '</td>';
                $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >' . format_datetime($v['create_at']) . '</td>';
                $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >' . $v['name'] . '</td>';
                $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >' . ($v['sex'] ? '男' : '女') . '</td>';
                $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >' . $v['identity_num'] . '</td>';
                $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >' . $v['nationality'] . '</td>';
                $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >' . $v['province'] . ' ' . $v['city'] . ' ' . $v['county'] . '' . '</td>';
                $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >' . $v['phone_num'] . '</td>';
                $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >' . $v['address'] . '</td>';
                $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >' . $v['emergency_contact_phone'] . '</td>';
                $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >' . $v['company'] . '</td>';
                $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >' . $v['birthday'] . '</td>';
                $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >' . $v['height'] . '</td>';
                $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >' . $v['weight'] . '</td>';
                $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >' . $v['hobby'] . '</td>';
                $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >' . ($v['broker'] ? '是' : '否') . '</td>';
                $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >' . $v['group_type'] . '</td>';
                $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >' . $v['join_type'] . '</td>';
                $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >' . $v['group_name'] . '</td>';
                $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >' . $v['group_num'] . '</td>';
                $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >' . $v['group_type'] . '</td>';
                $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >' . ($v['is_possess_music'] ? '是' : '否') . '</td>';
                $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >' . $v['music_instruments'] . '</td>';
                $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >' . $v['match_type'] . '</td>';
                $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >' .  ($v['is_original'] ? '是' : '否') . '</td>';
                $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >' . $v['join_kind'] . '</td>';
                $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >' . $v['competition_experience'] . '</td>';
                $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >' . $v['award_experience'] . '</td>';
                $strTable .= '</tr>';
            }

            $strTable .= '</table>';

            $filename = '报名申请列表_';
            if($this->request->get('create_at') !=''){
                $filename .= $this->request->get('create_at').'_';
            }
            downloadExcel($strTable, $filename);
            exit;
        }
    }

    /**
     * 报名详情
     */
    public function info()
    {
        $get = $this->request->get();
        if (!isset($get['id'])) {
            $this->error("参数错误");
        }
        $join = [
            ['app_users w', 'a.user_id=w.id'],
        ];
        $fields = "a.*,w.nickname,w.headimgurl";

        $info = Db::table('competition_sign_up')
            ->alias('a')
            ->join($join)
            ->where("a.id =" . $get['id'] . " ")
            ->field($fields)
            ->find();

        $request = $this->request->request();
        if (isset($request['is_report']) && $request['is_report'] == 1) {
            //打印数据
            $this->print_signup_info($info);
            exit();
        }

        return $this->fetch("info", ['vo' => $info]);
    }

    /**
     * 打印数据
     * @param $vo
     * @return bool
     */
    public function print_signup_info($vo)
    {
        //打印
        $strTable = '<table width="500" border="1">';
        $strTable .= '<tr><td colspan="2" style="text-align:center;font-size:18px;height: 32px;line-height: 32px;">中奖列表导出</td></tr>';
        $strTable .= '<tr>';
        $strTable .= '<td style="text-align:center;font-size:12px;" width="*" >选项</td>';
        $strTable .= '<td style="text-align:center;font-size:12px;" width="*">内容</td>';
        $strTable .= '</tr>';

        $strTable .= '<tr>';
        $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >用户</td>';
        $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >' . $vo['nickname'] . '</td>';
        $strTable .= '</tr>';

        $strTable .= '<tr>';
        $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >头像</td>';
        $strTable .= '<td style="text-align:center;font-size:12px;" width="250" height="100" ><img height="100" src="' . $vo['headimgurl'] . '" alt="头像"></td>';
        $strTable .= '</tr>';


        $strTable .= '<tr>';
        $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >报名时间</td>';
        $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >' . format_datetime($vo['create_at']) . '</td>';
        $strTable .= '</tr>';

        $strTable .= '<tr>';
        $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >姓名</td>';
        $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >' . $vo['name'] . '</td>';
        $strTable .= '</tr>';

        $strTable .= '<tr>';
        $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >性别</td>';
        $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >' . ($vo['sex'] ? '男' : '女') . '</td>';
        $strTable .= '</tr>';

        $strTable .= '<tr>';
        $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >身份证</td>';
        $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >' . $vo['identity_num'] . '</td>';
        $strTable .= '</tr>';

        $strTable .= '<tr>';
        $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >名族</td>';
        $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >' . $vo['nationality'] . '</td>';
        $strTable .= '</tr>';

        $strTable .= '<tr>';
        $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >城市</td>';
        $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >' . $vo['province'] . ' ' . $vo['city'] . ' ' . $vo['county'] . '' . '</td>';
        $strTable .= '</tr>';

        $strTable .= '<tr>';
        $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >手机号码</td>';
        $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >' . $vo['phone_num'] . '</td>';
        $strTable .= '</tr>';

        $strTable .= '<tr>';
        $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >家庭住址</td>';
        $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >' . $vo['address'] . '</td>';
        $strTable .= '</tr>';

        $strTable .= '<tr>';
        $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >紧急联系人号码</td>';
        $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >' . $vo['emergency_contact_phone'] . '</td>';
        $strTable .= '</tr>';

        $strTable .= '<tr>';
        $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >单位</td>';
        $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >' . $vo['company'] . '</td>';
        $strTable .= '</tr>';

        $strTable .= '<tr>';
        $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >出生日期</td>';
        $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >' . $vo['birthday'] . '</td>';
        $strTable .= '</tr>';

        $strTable .= '<tr>';
        $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >身高</td>';
        $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >' . $vo['height'] . '</td>';
        $strTable .= '</tr>';

        $strTable .= '<tr>';
        $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >体重</td>';
        $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >' . $vo['weight'] . '</td>';
        $strTable .= '</tr>';

        $strTable .= '<tr>';
        $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >爱好</td>';
        $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >' . $vo['hobby'] . '</td>';
        $strTable .= '</tr>';

        $strTable .= '<tr>';
        $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >是否签约经纪</td>';
        $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >' . ($vo['broker'] ? '是' : '否') . '</td>';
        $strTable .= '</tr>';

        $strTable .= '<tr>';
        $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >组类型</td>';
        $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >' . $vo['group_type'] . '</td>';
        $strTable .= '</tr>';

        $strTable .= '<tr>';
        $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >参赛形式</td>';
        $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >' . $vo['join_type'] . '</td>';
        $strTable .= '</tr>';

        $strTable .= '<tr>';
        $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >组合名</td>';
        $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >' . $vo['group_name'] . '</td>';
        $strTable .= '</tr>';


        $strTable .= '<tr>';
        $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >组合人数</td>';
        $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >' . $vo['group_num'] . '</td>';
        $strTable .= '</tr>';

        $strTable .= '<tr>';
        $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >组类型</td>';
        $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >' . $vo['group_type'] . '</td>';
        $strTable .= '</tr>';

        $strTable .= '<tr>';
        $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >是否有乐器</td>';
        $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >' . ($vo['is_possess_music'] ? '是' : '否') . '</td>';
        $strTable .= '</tr>';

        $strTable .= '<tr>';
        $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >乐器名称</td>';
        $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >' . $vo['music_instruments'] . '</td>';
        $strTable .= '</tr>';

        $strTable .= '<tr>';
        $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >参赛种类</td>';
        $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >' . $vo['match_type'] . '</td>';
        $strTable .= '</tr>';

        $strTable .= '<tr>';
        $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >是否有原创</td>';
        $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >' . ($vo['is_original'] ? '是' : '否') . '</td>';
        $strTable .= '</tr>';

        $strTable .= '<tr>';
        $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >参赛种类</td>';
        $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >' . $vo['join_kind'] . '</td>';
        $strTable .= '</tr>';

        $strTable .= '<tr>';
        $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >参赛经历</td>';
        $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >' . $vo['competition_experience'] . '</td>';
        $strTable .= '</tr>';

        $strTable .= '<tr>';
        $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >获奖经历</td>';
        $strTable .= '<td style="text-align:center;font-size:12px;" width="250" >' . $vo['award_experience'] . '</td>';
        $strTable .= '</tr>';

        $strTable .= '</table>';
        $filename = 'apply_info_'.$vo['nickname'].'_';
        downloadExcel($strTable, $filename);
        return true;
    }


}
